Computing systems and associated networks have greatly revolutionized our world. The interconnection of such computing systems into networks has resulted in explosive growth in the ability to communicate data ushering in what is now called the “information age”. The explosion continues with the advent of datacenters and cloud computing environments, and other distributed environment, in which robust amounts of processing resources can be applied against massive amounts of data. Such data may be stored and organized in, for instance, a database.
Users can issues the query against their database so as to retrieve relevant information to the user. The database front-end receives the query and compiles the query into a tree of operators (also called a “query tree”) that reflects the semantics of the query as posed. A query optimizer takes the initial query tree and optimizes the query tree for more efficient execution against the database. The optimized query tree is then used to select or generate an execution plan, which is then used to execute the query against the database. The result of the execution is then returned to the user.
The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one exemplary technology area where some embodiments described herein may be practiced.